package Review;

import java.nio.file.LinkOption;
import java.util.*;

public class Text2 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);//尾插元素e，默认放在数组的最后的位置
        list.add(2);
        list.add(3);
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(4);
        linkedList.add(5);
        List<Integer> list1 = list.subList(1,3);
        list1.set(0,1111);
        System.out.println(list1);
        System.out.println(list);
        /*list.addAll(linkedList);//将linkedList中的元素放进list中
        System.out.println(list);
        list.get(2);
        list.set(2,222);
        boolean a = list.contains(222);
        System.out.println(a);
        List<Integer> list1 = list.subList(1,4);//此时截取的是下标1-3位置的元素
        System.out.println(list1);
        list1.remove(2);
        list1.remove(new Integer(222));
        System.out.println(list1);
        //清空数组中的元素
        list.clear();
        System.out.println(list);*/
    }

    //杨辉三角
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> row = new ArrayList<>();
        row.add(1);
        ret.add(row);
        for (int i = 1; i < numRows; i++) {//i就是行的下标
            List<Integer> prevRow = ret.get(i-1);
            List<Integer> curRow = new ArrayList<>();
            curRow.add(1);//第一个1
            //中间的数值
            for (int j = 1; j < i; j++) {//j就是列的下标
                int x = prevRow.get(j) + prevRow.get(j - 1);
                curRow.add(x);
            }
            curRow.add(1);
            ret.add(curRow);
        }
        return ret;
    }

    public static void main4(String[] args) {
        //无参构造，在第一次add元素时给初始容量大小是10，扩容按1.5倍扩容
        List<Integer> arrayList = new ArrayList<>();
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        //直接遍历：在AbstractCollection中重写了toString方法
        System.out.println(arrayList);

        //for循环遍历
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.print(arrayList.get(i) + " ");
        }
        //for each遍历
        System.out.println();
        for (Integer x : arrayList) {
            System.out.print(x + " ");
        }
        //迭代器的遍历
        Iterator<Integer> it = arrayList.listIterator();
        while (it.hasNext()) {
            System.out.println(it.next() + " ");
        }

        /*//可以传参一个实现了Collection接口的类的实例化对象
        LinkedList<Integer> linkedList = new LinkedList<>();
        ArrayList<Integer> arrayList1 = new ArrayList<>(linkedList);
        //带一个参数的构造：这个参数多大，这个数组的初始化容量就是多大
        ArrayList<Integer> arrayList2 = new ArrayList<>(20);
        //ArrayList的扩容机制，ArrayList的三个构造方法(源码)
        //ArrayList常见的方法
        //ArrayList的几种遍历方式
        //面试题：删除字符串1中出现字符串2中的字符
        //思路：遍历s1，如果s2中的字符在s1中没有，就加入list，之后输出list即可
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
            String s1 = scan.nextLine();
            String s2 = scan.nextLine();
            List<Character> list = new ArrayList<>();
            for (int i = 0; i < s1.length(); i++) {
                char ch = s1.charAt(i);
                if (!s2.contains(ch+"")) {
                    list.add(ch);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i));
            }
        }*/
    }
}
